#ifndef QUEUE_H
#define QUEUE_H

#include <stdint.h>
#include <stdbool.h>

#define QUEUE_SIZE 10

typedef struct {
    uint8_t data[QUEUE_SIZE];
    int front;  // 队头指针
    int rear;   // 队尾指针
    int size;   // 当前队列中的元素数量
} Queue;

// 初始化队列
void initQueue(Queue *q);

// 判断队列是否为空
bool isEmpty(Queue *q);

// 判断队列是否已满
bool isFull(Queue *q);

// 入队操作，队列满时挤出最早元素
bool enqueue(Queue *q, uint8_t value);

// 出队操作
bool dequeue(Queue *q, uint8_t *value);

// 获取队列当前元素数量
int getQueueSize(Queue *q);

#endif
